使用立即窗口获得对象的帮助信息

立即窗口除了可以立即执行搜集,并返回debug.print(或在直接窗口中?加语句,或print 加语句)的输出信息

VBA使用立即窗口(? 表达式,或print 表达式),以及立即窗口+Debug.print()语句进行调试。

VB编辑器窗口,选择“视图”-“立即窗口”,即可以打开立即窗口:

使用VBA可以实现的功能包括:

1. 使重复的任务自动化.

2. 自定义EXCEL工具栏,菜单和界面.

3. 简化模板的使用.

4. 自定义EXCEL,使其成为开发平台.

5. 创建报表.

6. 对数据进行复杂的操作和分析.

用EXCEL作为开发平台有如下原因:

1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.

2. EXCEL内置大量函数.

3. EXCEL界面熟悉.

4. 可连接到多种数据库.

用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.

通过宏记录器无法完成的工作有:

1、录制的宏无判断或循环能力.

2、人机交互能力差,即用户无法进行输入,计算机无法给出提示.

3、无法显示EXCEL对话框.

4、无法显示自定义窗体.

加载宏就是写有VBA代码的xlam文件。

VBA宏不能运行有两种情况,一种是安装时没有安装office工具和共享功能,另外的情况是宏安全设置为宏不可用。

VBE(visual basic editor)是VBA程序的编辑工具,它集成了代码的编写、运行、调试以及对象属性更改和设置于一身。

打开VBE窗口最快捷的方式是用快捷键:Alt+F11(联想电脑可能是Fn+Alt+F11)。

另外,打开VBE窗口的另外常用方式是找到它的老家:开发工具;开发工具一般不显示在标题栏,首先要使用Excel的选项中的“自定义功能区”,设置“开发工具”进入主选项卡。

VBE的窗口界面大约有六个窗口,他们调出和消掉都可以通过视图找到,他们也是快速写VBA代码的好帮手:

工程资源管理器:显示当前VBA工程中包含的所有部件(工作簿,工作表,窗体,模块,类模块等)及所有引用的工程;

代码窗口:显示和编辑VBA程序代码,这个是最常用的代码窗口;

属性窗口:当前激活的工程部件的主要属性;

监视窗口:显示被监视的指定表达式的值。

立即窗口:执行单行的语句或者显示debug.print所打印的表达式的值。(这个很有用,可以调试每一句代码的值以及 运行的过程,通常调出来的快捷键是:Ctrl+G)

本地窗口:显示当前运行过程中所包含变量的值。

文档模块:Sheet1,Sheet2,Sheet3,ThisWorkbook

窗体模块:UserForm1

标准模块:模块1

类模块:类1

在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate, Auto_Deactivate。这些自动运行的宏是为了与Excel5和95兼容而保留下来的。现在可以使用工作簿的Open,Close,Activate,Deactivate 事件来代替它们。

模块:一组声明集合,其后为过程

声明:不可执行的代码,它命名一常数、变量或过程,并且指定其特性,比如数据类型。对于DLL procedures,声明指定名称、库和参数。

过程:命名的语句序列,可作为单元来执行。例如,Function、Property和 Sub 都是过程类型。总是在模块级别定义过程的名称,所有可执行的代码必须包含在过程内,一过程不能套在其它过程中。

Me表示模块本身,也就是代码所在的模块。

过宏记录器无法完成的工作有:

1、录制的宏无判断或循环能力.

2、人机交互能力差,即用户无法进行输入,计算机无法给出提示.

3、无法显示EXCEL对话框.

4、无法显示自定义窗体.

类模块可以添加对象属性和方法,然后便可在其它模块中引用。

[Private|Public|Friend][Static] Sub name [(arglist)]'过程作用范围+变量作用周期
    [statements]
    [Exit Sub] '中途中止过程
    [statements]
End Sub

[Private|Public|Friend][Static] Function name [(arglist)] [As type]'过程作用范围+变量作用周期
    [statements]
    [name=expression] '将结果返回给函数名
    [Exit Function] '中途中止过程
    [statements]
    [name=expression] '将结果返回给函数名
End Function

static不会因为过程结束而释放其已更新的数据,只有当整个工程关闭才会释放这个变量。

VBA过程是可以跨文档调用的,但需要有同时打开。也就是A文档可以调用B文档保存的VBA,但需要B是打开的。